﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Web.Script.Serialization;
using Newtonsoft.Json.Linq;
using GIO.dominio;
using System.Data;

namespace GIO.dominio
{
    public class manejadorIncidente
    {

        static readonly manejadorIncidente instance = new manejadorIncidente();

        // Explicit static constructor to tell C# compiler

        // not to mark type as beforefieldinit
        static manejadorIncidente()
        {
        }

        manejadorIncidente()
        {
        }

        public static manejadorIncidente Instance
        {
            get
            {
                return instance;
            }
        }


        public DataTable parseIncidentesJson(String url)
        {

            String urlFormat = String.Format(url);
            WebClient serviceRequest = new WebClient();
            string response = serviceRequest.DownloadString(new Uri(url));
            jsonParser.jSonArrayParser jArray = new jsonParser.jSonArrayParser();
            JObject jo = jArray.pidoServicio(url);
            JArray jSonArray = (JArray)jo["data"];
            incidente i = new incidente();
            //List<incidente> incidentes = new List<incidente>();
            DataTable tabla = new DataTable();

            //Se crean  5 columnas para el objecto DataTable que se acaba de crear y se le agrega el nombre que le queremos dar a nuestras columnas 
            tabla.Columns.Add("id");
            tabla.Columns.Add("titulo");
            tabla.Columns.Add("fechaInicio");
            tabla.Columns.Add("idCliente");
            tabla.Columns.Add("detalle");
            tabla.Columns.Add("idPrioridad");
            tabla.Columns.Add("idClasificacionIncidente");
            tabla.Columns.Add("idTipoIncidente");
            tabla.Columns.Add("idTipoIncidenteExtra");
            tabla.Columns.Add("idEstado");
            tabla.Columns.Add("fechaAsignado");
            tabla.Columns.Add("idUsuarioSol");
            tabla.Columns.Add("idMotivoRechazo");
            tabla.Columns.Add("fechaFin");
            
            for (int x = 0; x < jSonArray.Count; x++)
            {
                
                 tabla = i.llenarDesdeJSon((JObject)jSonArray[x], tabla);
            }
            
            return tabla;
        }

        /*
 /Agregamos los espacios de nombres 
Using System.Data;
Using System.Data.SqlClient; 	  	 

//Primero vamos a crear una instancia del objecto DataTable 
DataTable mitabla = new DataTable(); 	
	
//Se crean  5 columnas para el objecto DataTable que se acaba de crear y se le agrega el nombre
que le queremos dar a nuestras columnas 
mitabla.Columns.Add("id");
mitabla.Columns.Add("nombre");
mitabla.Columns.Add("descripcion");
mitabla.Columns.Add("precio");
mitabla.Columns.Add("marca"); 	
      	 
//Creamos una fila en el objecto mitabla y llenamos la fila con los datos 	  	 
DataRow fila = mitabla.NewRow();
fila[0] = 0001;
fila[1] = "chaqueta";
fila[2] = "botones de plata";
fila[3] = "50.000";
fila[4] ="mimarca";
     	  	 
//Agregamos la fila al objecto mitabla 		
mitabla.Rows.Add(fila);
	  	 
//Por ultimo mostramos los datos en un GridView 		
this.GridView1.DataSource = mitabla;
this.GridView1.DataBind();
             
 */

    }
}